function ajax(url) {
  return new Promise((resolve, reject) => {
    // foo();
    // throw new Error("错误处理");
    const xhr = new XMLHttpRequest();
    xhr.open("GET", url);
    xhr.responseType = "json";
    xhr.onload = function () {
      if (this.status === 200) {
        resolve(this.response);
      } else {
        reject(this.statusText);
      }
    };
    xhr.send();
  });
}

ajax("./api/urls.json").then(
  (value) => {
    console.log("onFulfilled", value);
    return ajax("xx");
  },
  (err) => {
    // 只能指定这个 promise 的异常
    console.log("onRejected", err);
  }
);

/* ajax("./api/urls.json")
  .then((value) => {
    console.log("onFulfilled", value);
    return ajax("xx");
  })
  .then(undefined, (err) => {
    console.log("onRejected", err);
  }); */
// .catch((err) => {    // catch 是 then的别名方法， catch可以捕获这个promise链的异常
//   console.log("onRejected", err);
// });
